package com.orzxlee.MethodReference04;

import com.orzxlee.MethodReference02.Printable;

import java.util.Locale;
import java.util.function.BiFunction;

/**
 *  Lambda表达式 第三章 方法引用
 *
 *      引用对象的实例方法
 *          格式: 对象::成员方法
 *          范例: new PrintString()::printUpper
 *      需求4:
 *          1.定义一个类PrintString
 *              public void printUpper(String s);  //把字符串参数变成大写的数据,在控制台输出
 *          2.定义一个接口Printer
 *              void printUpperCase(String s)
 *          2.定义一个测试类Demo
 *              usePrinter(Printer p)
 *
 *       方法引用符 ::
 *
 */
public class Demo {
    public static void main(String[] args) {

        //Lambda表达式实现
        //usePrinter(s -> System.out.println(s.toUpperCase()));

        //引用对象的实例方法
        usePrinter(new PrintString()::printUpper);


        //usePrinter(String::toUpperCase);


    }


    private static void usePrinter(Printer p){
        p.printUpperCase("Hello World");
    }
}

